package com.sheepone.util.structure.list;

import java.util.Collection;
import java.util.Iterator;

/**
 * @author Miss.杨
 * @description
 * @since 2024/5/3:14:57
 */
public interface DataNodeList<D,T>{
    
    
    boolean addNode(T t);

    void addNode(int index, T t);

    void addAllNode(Collection<? extends T> c);

    void addAllNode(int index, Collection<? extends T> c);

    boolean containsNode(T o);

    boolean containsAllNode(Collection<?> c);

    T getNode(int index);

    int indexOfNode(T o);

    Iterator<T> nodeIterator();

    boolean removeNode(T o);

    T removeNode(int index);

    boolean contains(D o);

    boolean containsAll(Collection<D> c);

    boolean add(D e);
    boolean remove(D o);

    boolean addAll(Collection<? extends D> c);

    boolean addAll(int index, Collection<? extends D> c);

    boolean removeAll(Collection<D> c);

    D get(int index);

    D set(int index, D element);

    void add(int index, D element);

    D remove(int index);

    int indexOf(Object o);

    int lastIndexOf(Object o);


}
